// Define una

#include <Arduino.h>


const byte ascii[95][5] = {
  {0x00,0x00,0x00,0x00,0x00},     /* 0x20 -> espacio */
  {0x00,0x00,0xfb,0x00,0x00},     // 0x21 -> !
  {0x00,0x71,0x00,0x71,0x00},     // 0x22 -> "
  {0x2f,0xf9,0x2f,0xf9,0x29},     // 0x23 -> #
  {0x35,0x55,0xff,0x55,0x59},     // 0x24 -> $
  {0x05,0x49,0x11,0x25,0x41},     // 0x25 -> %
  {0x6d,0x93,0x8b,0x45,0x0b},     // 0x26 -> &
  {0x00,0x00,0x71,0x00,0x00},     // 0x27 -> '
  {0x00,0x7d,0x83,0x00,0x00},     // 0x28 -> (
  {0x00,0x00,0x83,0x7d,0x00},     // 0x29 -> )
  {0x00,0x29,0x11,0x29,0x00},     // 0x2a -> *
  {0x00,0x11,0x39,0x11,0x00},     // 0x2b -> +
  {0x00,0x03,0x0d,0x00,0x00},     // 0x2c -> ,
  {0x00,0x11,0x11,0x11,0x00},     // 0x2d -> -
  {0x00,0x00,0x05,0x00,0x00},     // 0x2e -> .
  {0x03,0x0d,0x11,0x61,0x81},     // 0x2f -> /
  {0x7d,0x83,0x83,0x7d,0x00},     // 0x30 -> 0
  {0x41,0x83,0xff,0x03,0x00},     // 0x31 -> 1
  {0x87,0x8b,0x93,0x63,0x00},     // 0x32 -> 2
  {0x00,0x83,0x93,0x93,0x6d},     // 0x33 -> 3
  {0x00,0xe1,0x11,0x11,0xff},     // 0x34 -> 4
  {0xf3,0x93,0x93,0x8d,0x00},     // 0x35 -> 5
  {0x7d,0x93,0x93,0x0d,0x00},     // 0x36 -> 6
  {0x00,0x83,0x8d,0xb1,0xc1},     // 0x37 -> 7
  {0x00,0xff,0x93,0xff,0x00},     // 0x38 -> 8
  {0x00,0xf1,0x91,0xff,0x00},     // 0x39 -> 9
  {0x00,0x00,0x29,0x00,0x00},     // 0x3a -> :
  {0x00,0x03,0x2d,0x00,0x00},     // 0x3b -> ;
  {0x11,0x29,0x45,0x83,0x00},     // 0x3c -> <
  {0x49,0x49,0x49,0x49,0x49},     // 0x3d -> =
  {0x00,0x83,0x45,0x29,0x11},     // 0x3e -> >
  {0x00,0x41,0x8b,0x91,0x61},     // 0x3f -> ?
  {0x7d,0x83,0xbb,0xab,0x79},     // 0x40 -> @
  {0x3f,0x49,0x89,0x49,0x3f},     // 0x41 -> A
  {0xff,0x93,0x93,0x93,0x6d},     // 0x42 -> B
  {0x7d,0x83,0x83,0x83,0x83},     // 0x43 -> C
  {0xff,0x83,0x83,0x83,0x7d},     // 0x44 -> D
  {0xff,0x93,0x93,0x93,0x93},     // 0x45 -> E
  {0xff,0x91,0x91,0x91,0x91},     // 0x46 -> F
  {0x7d,0x83,0x83,0x8b,0x4d},     // 0x47 -> G
  {0xff,0x11,0x11,0x11,0xff},     // 0x48 -> H
  {0x00,0x83,0xff,0x83,0x00},     // 0x49 -> I
  {0x00,0x0d,0x83,0x83,0xfd},     // 0x4a -> J
  {0xff,0x11,0x29,0x45,0x83},     // 0x4b -> K
  {0xff,0x03,0x03,0x03,0x00},     // 0x4c -> L
  {0x7f,0x21,0x11,0x21,0x7f},     // 0x4d -> M
  {0x7f,0x21,0x19,0x05,0x7f},     // 0x4e -> N
  {0x7d,0x83,0x83,0x83,0x7d},     // 0x4f -> O
  {0x7f,0x89,0x89,0x89,0x71},     // 0x50 -> P
  {0x7d,0x83,0x8b,0x85,0x7b},     // 0x51 -> Q
  {0x7f,0x89,0x89,0x8d,0x73},     // 0x52 -> R
  {0x63,0x93,0x93,0x93,0x8d},     // 0x53 -> S
  {0x81,0x81,0xff,0x81,0x81},     // 0x54 -> T
  {0xfd,0x03,0x03,0x03,0xfd},     // 0x55 -> U
  {0xf1,0x0d,0x03,0x0d,0xf1},     // 0x56 -> V
  {0xff,0x05,0x09,0x05,0xff},     // 0x57 -> W
  {0xc7,0x29,0x11,0x29,0xc7},     // 0x58 -> X
  {0xc1,0x21,0x1f,0x21,0xc1},     // 0x59 -> Y
  {0x87,0x8b,0x93,0xa3,0xc3},     // 0x5a -> Z
  {0x00,0xff,0x83,0x00,0x00},     // 0x5b -> [
  {0x81,0x61,0x11,0x0d,0x03},     // 0x5c -> "\"
  {0x00,0x00,0x83,0xff,0x00},     // 0x5d -> ]
  {0x21,0x41,0x81,0x41,0x21},     // 0x5e -> ^
  {0x83,0x83,0x83,0x83,0x83},     // 0x5f -> _
  {0x00,0x00,0xC1,0x21,0x00},     // 0x60 -> `
  {0x4d,0x93,0x93,0x95,0x7f},     // 0x61 -> a
  {0xfd,0x13,0x23,0x23,0x1d},     // 0x62 -> b
  {0x3d,0x43,0x43,0x43,0x00},     // 0x63 -> c
  {0x1d,0x23,0x23,0x13,0xfd},     // 0x64 -> d
  {0x1d,0x2b,0x2b,0x2b,0x19},     // 0x65 -> e
  {0x11,0x7f,0x91,0x00,0x00},     // 0x66 -> f
  {0x00,0x33,0x4b,0x4b,0x3d},     // 0x67 -> g
  {0x00,0xff,0x11,0x11,0x0f},     // 0x68 -> h
  {0x00,0xbf,0x00,0x00,0x00},     // 0x69 -> i
  {0x00,0x05,0x03,0xbd,0x00},     // 0x6a -> j
  {0x00,0x7f,0x19,0x25,0x43},     // 0x6b -> k
  {0x00,0x7f,0x00,0x00,0x00},     // 0x6c -> l
  {0x1f,0x21,0x3f,0x21,0x1f},     // 0x6d -> m
  {0x1f,0x21,0x21,0x1f,0x00},     // 0x6e -> n
  {0x1d,0x23,0x23,0x23,0x1d},     // 0x6f -> o
  {0x3f,0x49,0x49,0x31,0x00},     // 0x70 -> p
  {0x31,0x49,0x40,0x3f,0x00},     // 0x71 -> q
  {0x00,0x7f,0x21,0x41,0x41},     // 0x72 -> r
  {0x1a,0x2b,0x2b,0x2d,0x00},     // 0x73 -> s
  {0x21,0xfd,0x23,0x03,0x00},     // 0x74 -> t
  {0x3d,0x03,0x03,0x3d,0x03},     // 0x75 -> u
  {0x31,0x0d,0x03,0x0d,0x31},     // 0x76 -> v
  {0x3f,0x05,0x09,0x05,0x3f},     // 0x77 -> w
  {0x23,0x15,0x09,0x15,0x23},     // 0x78 -> x
  {0x21,0x11,0x0f,0x11,0x21},     // 0x79 -> y
  {0x00,0x27,0x2b,0x33,0x00},     // 0x7a -> z
  {0x11,0x6d,0x83,0x00,0x00},     // 0x7b -> {
  {0x00,0x00,0xff,0x00,0x00},     // 0x7c -> |
  {0x00,0x00,0x83,0x6d,0x11},     // 0x7d -> }
  {0x11,0x21,0x11,0x09,0x11}      // 0x7e -> ~
};

#ifndef MatrizLed_h
#define MatrizLed_h

#include <Arduino.h>
#include "Registro.h"

class MatrizLed
{
    public:
        MatrizLed();
        void Clear();
        void print(char letra);
        void print(byte patron[5]);
        byte getValorColumna(char letra, byte columna);

    private:
        int _columna[5];
        Registro _dato = Registro();
};
#endif
